// i18n
import VueI18n from "vue-i18n";
import Vue from "vue";
import locale from "element-ui/lib/locale";
import { getLang } from "@/utils/lang";
import myI18nEn from "./en.json";
import myI18nZh from "./zh-CN.json";
import myI18nKR from "./ko.json";
import myI18nTh from "./th.json";

import enLocale from "element-ui/lib/locale/lang/en";
import koLocale from "element-ui/lib/locale/lang/ko";
import zhLocale from "element-ui/lib/locale/lang/zh-CN";
import thLocale from "element-ui/lib/locale/lang/th";
// 使用 VueI18n 插件
Vue.use(VueI18n);
// 默认中文
const lang = "zh-CN";

// 获取浏览器首选语言
export const getLanguage = () => {
  let language = getLang(); // 假设这是从本地缓存获取语言的方法
  if (language) {
    return language;
  }
  language = navigator.language.toLowerCase();
  const locales = Object.keys(messages); // 使用 messages 来获取已定义的消息目录
  for (const locale of locales) {
    if (language.indexOf(locale) > -1) {
      return locale;
    }
  }
  return "zh-CN";
};

// 定义消息目录
const messages = {
  "zh-CN": Object.assign({}, myI18nZh, zhLocale), // 注意这里使用空对象作为第一个参数
  "en-US": Object.assign({}, myI18nEn, enLocale),
  ko_KR: Object.assign({}, myI18nKR, koLocale),
  th: Object.assign({}, myI18nTh, thLocale),
  // 如果还有新的语言在下面继续添加
};

// 创建 VueI18n 实例
const i18n = new VueI18n({
  locale: "zh-CN", // 使用默认值初始化
  messages,
});

// 更新 VueI18n 实例的 locale 属性
i18n.locale = getLanguage();

// 设置国际化方法
locale.i18n((key, value) => i18n.t(key, value)); //为了实现element插件的多语言切换

export default i18n;
